/**
 * 监听器写法3：
 * lambda表达式，简化匿名内部类
 */

package demo1.Frames.MyFrame;

import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyFrame3 extends JFrame {
    //设置标签控件
    JLabel timeLabel = new JLabel("00:00:00");

    public void showTime() {
        System.out.println("按钮被点击了");

        //获取并打印当前时间
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        String timeStr = sdf.format(new Date());
        System.out.println(timeStr);

        //设置timeLabel显示的字符串
        timeLabel.setText(timeStr);
    }

    public MyFrame3(String title) { //MyFrame的构造方法
        //调用JFrame父类中的构造方法，传入窗口标题
        super(title);

        //设置根容器
        JPanel root = new JPanel();
        this.setContentPane(root);

        //设置按钮控件
        JButton button = new JButton("开始");
        //向容器中添加控件
        root.add(button);
        root.add(timeLabel);


        //简化了匿名内部类重复的部分，保留接口ActionListener的参数和重写抽象方法的实现
        button.addActionListener((e)->{
            showTime();
        });
    }
}